package red.mlz.module.module.game.service;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import red.mlz.module.module.game.es.GameEs;
import red.mlz.module.module.game.es.GameEsRepository;

@Service
public class GameEsService {

    @Autowired
    private GameEsRepository gameEsRepository;

    /**
     * 搜索游戏
     * @param keyword 关键词
     * @param pageable 分页信息
     * @return 分页结果
     */
    public Page<GameEs> searchGames(String keyword, Pageable pageable) {
        if (keyword == null || keyword.trim().isEmpty()) {
            return gameEsRepository.findAll(pageable);
        } else {
            return gameEsRepository.searchByKeyword(keyword, pageable);
        }
    }

    /**
     * 保存游戏到ES
     * @param gameEs ES游戏实体
     * @return 保存后的实体
     */
    public GameEs save(GameEs gameEs) {
        return gameEsRepository.save(gameEs);
    }

    /**
     * 批量保存游戏到ES
     * @param games ES游戏实体列表
     * @return 保存后的实体列表
     */
    public Iterable<GameEs> saveAll(Iterable<GameEs> games) {
        return gameEsRepository.saveAll(games);
    }

    /**
     * 根据ID删除ES中的游戏
     * @param id 游戏ID
     */
    public void deleteById(Long id) {
        gameEsRepository.deleteById(id);
    }

    /**
     * 清空ES索引
     */
    public void deleteAll() {
        gameEsRepository.deleteAll();
    }

    public long count() {
        return gameEsRepository.count();
    }
}
